package vendas;

import livros.*;

public class RepositorioItemVendaArray {
	private ItemVenda[] itensVenda;
	private int indice;

	
	public RepositorioItemVendaArray() {
		itensVenda = new ItemVenda[30];
		indice = 0;
	}
	
	public ItemVenda[] getItensVenda(){
		return itensVenda;
	}
	
	public IteratorItemVenda getIterator(){
        
		IteratorItemVendaArray itens = new IteratorItemVendaArray();
		for(int i=0; i<indice; i++)
		{
			itens.inserir(itensVenda[i]);
			
		}
		return itens;
	}
	
	
	public void inserir(ItemVenda item) {
		itensVenda[indice] = item;
		indice++;
	}

	public void atualizar(ItemVenda item) throws ItemVendaNaoEncontradoException{
		Livro livro;
		livro = item.getLivro();
		int i = getIndice(livro);
		if (i == indice) {
			throw new ItemVendaNaoEncontradoException(livro);
		} else {
			itensVenda[i] = item;
		}
	}
	
	public int getIndice(Livro livro) {
		Livro n;
		boolean achou = false;
		int i = 0;

		while ((!achou) && (i < indice)) {
			n = itensVenda[i].getLivro();
			if (n.equals(livro)) {
				achou = true;
			} else {
				i++;
			}
		}
		return i;
	}

	public ItemVenda procurar(Livro livro) throws ItemVendaNaoEncontradoException{
		ItemVenda resposta;
		int i = getIndice(livro);
		if (i == indice) {
			throw new ItemVendaNaoEncontradoException(livro);
		} 
		else {
			resposta = itensVenda[i];
		}
		return resposta;
	}

	public boolean existe(Livro livro) {
		boolean resposta;
		int i = getIndice(livro);
		if (i == indice) {
			resposta = false;
		} else {
			resposta = true;
		}
		return resposta;
	}

	public void remover(Livro livro) throws ItemVendaNaoEncontradoException{
		int i = getIndice(livro);
		if (i == indice) {
			throw new ItemVendaNaoEncontradoException(livro);
		} else {
			itensVenda[i] = itensVenda[indice - 1];
			indice--;
		}
	}
	
} 

  